home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Mac OS SDK / Dev.CD Jan 98 SDK2.toast / Development Kits (Disc 2) / QuickTime™ VR 2.0 SDK / QTVR C⁄C++ Runtime API / Sample Code / QTVRSamplePlayer / src / menus.c < prev    next >
Encoding:
Text File  |  1997-05-22  |  3.3 KB  |  178 lines  |  [TEXT/CWIE]

  1. // Menu code and constants
  2.  
  3. // Self header
  4. #include "appmenus.h"
  5.  
  6. // Application-specific headers
  7. #include "app.h"
  8.  
  9. // API headers
  10. #include "qtvrsupp.h"
  11.  
  12. // System headers
  13. #include <Devices.h>
  14. #include <LowMem.h>
  15. #include <Menus.h>
  16. #include <Resources.h>
  17. #include <ToolUtils.h>
  18.  
  19. /////
  20. //
  21. // Local Prototypes
  22. //
  23. /////
  24.  
  25. void DoAbout(void);
  26.  
  27. /////
  28. //
  29. // Initialize the Menu Bar
  30. //
  31. /////
  32.  
  33. void MenuBarInit()
  34. {
  35.     SetMenuBar (GetNewMBar(128));
  36.     AddResMenu (GetMenuHandle(AppleMenuID), 'DRVR');
  37.     DrawMenuBar();
  38.     // This should add menus one-by-one for additional modules
  39.     // Then disabling USEQTVR would correctly disable the menu
  40. }
  41.  
  42.  
  43. /////
  44. //
  45. // Set up the menus to handle a hotkey or menu selection
  46. //
  47. /////
  48.  
  49. void DoMenuSetup(void)
  50. {
  51.     MenuHandle        mh;
  52.     MovieInstance    *theMovieInstance;
  53.     
  54.     theMovieInstance = GetValidMovieInstance(nil);
  55.     
  56.     // Default Apple menu setup
  57.     mh = GetMHandle (AppleMenuID);
  58.     EnableItem (mh, iAppleAbout);    // Now we support About...
  59.  
  60.     // Default File menu setup
  61.     mh = GetMHandle (FileMenuID);
  62.     EnableItem (mh, iFileOpen);
  63.     EnDisItem  (mh, iFileClose, (theMovieInstance != nil));
  64.     DisableItem (mh, iFileSave);
  65.     DisableItem (mh, iFileSaveAs);
  66.     EnableItem (mh, iFileQuit);
  67.     
  68.     // Default Edit menu setup
  69.     mh = GetMHandle (EditMenuID);
  70.     DisableItem (mh, iEditUndo);    // Don't allow editing of Movie.
  71.     DisableItem (mh, iEditCut);
  72.     DisableItem (mh, iEditCopy);
  73.     DisableItem (mh, iEditPaste);
  74.     DisableItem (mh, iEditClear);
  75.  
  76.     mQTVRMenuSetup();
  77. }
  78.  
  79.  
  80. void DoAbout(void);
  81. void DoAbout(void)
  82. {
  83.     Handle    soundHandle;
  84.     short    saveResFile;
  85.  
  86.     saveResFile = CurResFile();
  87.     UseResFile(LMGetCurApRefNum());
  88.     soundHandle = Get1Resource('snd ', 128);    // Get a sound
  89.     if (soundHandle != nil) {
  90.         SndPlay(nil, (SndListHandle)soundHandle, false);    // and play it
  91.         ReleaseResource(soundHandle);
  92.     }    // if we didn't get a sound, oh well...
  93.     UseResFile(saveResFile);
  94.  
  95.     Alert(128, nil);
  96. }
  97.  
  98. /////
  99. //
  100. // Handle Menu selections
  101. //
  102. /////
  103.  
  104. void DoMenuChoice(long menuResult)
  105. {
  106.     short            menuID, menuItem, daRefNum;
  107.     Str255            daName;
  108.     Boolean            MenuChoiceHandled = true;
  109.  
  110.     SetCursor(&qd.arrow);
  111.  
  112.     menuID = HiWord(menuResult);
  113.     menuItem = LoWord(menuResult);
  114.  
  115.     switch (menuID) {
  116.  
  117.         case AppleMenuID:
  118.             switch (menuItem) {
  119.                 case iAppleAbout:
  120.                     DoAbout();
  121.                     break;
  122.                 default:
  123.                     GetItem(GetMHandle(AppleMenuID), menuItem, daName);
  124.                     daRefNum = OpenDeskAcc(daName);
  125.                     break;
  126.             }
  127.             break;
  128.         
  129.         case FileMenuID:
  130.             switch (menuItem) {
  131.                 case iFileOpen:
  132.                     StandardFileOpenMovie();
  133.                     break;
  134.                 case iFileClose:    
  135.                     CloseMovieByWindow(FrontWindow());
  136.                     break;
  137.                 case iFileSave:
  138.                     break;
  139.                 case iFileSaveAs:
  140.                     break;
  141.                 case iFileQuit:
  142.                     g.Done = true;
  143.                     break;
  144.                 default:
  145.                     MenuChoiceHandled = false;
  146.                     break;
  147.             }
  148.             break;
  149.             
  150.         case EditMenuID:
  151.             UserMessage("\pEdit Menu functions not supported.");
  152.             break;
  153.                             #if 0
  154.                                 EditMenuID,
  155.                                     iEditUndo = 1,
  156.                                     iMenuSeparator201,
  157.                                     iEditCut,
  158.                                     iEditCopy,
  159.                                     iEditPaste,
  160.                                     iEditClear
  161.                             #endif // #if 0
  162.         default:
  163.             MenuChoiceHandled = false;
  164.             break;
  165.         }
  166.  
  167.         if (!MenuChoiceHandled)
  168.             MenuChoiceHandled = mQTVRDoMenuChoice(menuResult);
  169.  
  170.         // etc...
  171.     //    if (!MenuChoiceHandled)
  172.     //        MenuChoiceHandled = mQTVRDoMenuChoice(menuResult);
  173.  
  174.  
  175.     HiliteMenu(0);        // Unhighlight what MenuSelect (or MenuKey) hilited.
  176. }
  177.  
  178.